Computer and communication technologies continue to advance at a rapid pace. Indeed, computer and communication technologies are involved in many aspects of a person's day. For example, many devices being used today have a small computer inside of the device. These small computers come in varying sizes and degrees of sophistication. Computers commonly used include everything from hand-held computing devices to large multi-processor computer systems.
Computers are used in almost all aspects of business, industry and academic endeavors. More and more homes are using computers as well. The pervasiveness of computers has been accelerated by the increased use of computer networks, including the Internet. Most companies have one or more computer networks and also make extensive use of the Internet. The productivity of employees often requires human and computer interaction. Improvements in computers and software have been a force for bringing about great increases in business and industrial productivity.
Transmission Control Protocol (TCP) is widely used in the Internet, serving as the transport mechanism for web browsing (Hypertext Transfer Protocol), e-mail (Simple Mail Transfer Protocol), file downloading (File Transfer Protocol), and so forth.
In traditional TCP, “reliability” is defined strictly in terms of data, and not at all in terms of time. This is an appropriate definition for those applications which are not time-sensitive, or are not time-sensitive beyond the ability of the network to perform at all times and in all places. Thus, the goal of TCP is to create an exact duplicate of the sender's byte stream on the receiver's system, regardless of how long it takes. TCP incorporates a positive acknowledgement strategy in which every segment of a transfer stream is retransmitted repetitively until it is either acknowledged or the connection is broken.
For real-time applications, the timeliness of data is in many cases more important than precise accuracy. For example, in typical video streaming applications, video frames are replaced 30 times a second, and none is more important than another. The techniques employed in known TCP implementations may be inappropriate for data streams originating in real-time, because TCP segments corresponding to elements of the data stream become stale after a certain period of time (generally measured in tens of milliseconds). Current practice does not solve this problem directly, but requires various means in an audio/video rendering station to cope with starvation for data, including breakdown of the connection and a complete restart.
In view of the foregoing, benefits may be realized by means for addressing some or all of the foregoing issues. More specifically, benefits may be realized by systems and methods for implementing an acknowledgement mechanism for transmission of a real-time data stream from a sending system to a receiving system.